﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Cataloger
{
    public partial class FrmKategorieDyn : Form
    {
        #region Fields (1)

        List<string> rozsz = new List<string>();

        #endregion Fields

        #region Constructors (2)

        public FrmKategorieDyn(KategoriaDynamiczna katDyn)
            : this()
        {

        }

        public FrmKategorieDyn()
        {
            InitializeComponent();
            cmbRozDoJed.SelectedIndex = 3;
            cmbRozOdJed.SelectedIndex = 1;
        }

        #endregion Constructors
        public long RozmiarOd
        {
            get
            {
                return PrzeliczNaBajty((int)numericUpDown1.Value, cmbRozOdJed.SelectedItem.ToString());
            }
        }
        public long RozmiarDo
        {
            get { return PrzeliczNaBajty((int)numericUpDown3.Value, cmbRozDoJed.SelectedItem.ToString()); }
        }

        #region Methods (4)

        // Public Methods (1) 

        public static long PrzeliczNaBajty(int wartosc, string jednostka)
        {

            if (jednostka == "B")
            {
                return (long)wartosc;
            }
            else if (jednostka == "KB")
            {
                return (long)wartosc * (long)1024;
            }
            else if (jednostka == "MB")
            {
                return (long)wartosc * (long)1024 * (long)1024;
            }
            else if (jednostka == "GB")
            {
                return (long)wartosc * (long)1024 * (long)1024 * (long)1024;
            }
            else
                return (long)wartosc;

        }
        // Private Methods (3) 

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                if (!txtRozsz.Text.StartsWith("."))
                    rozsz.Add("." + txtRozsz.Text.ToLower().Trim());
                else
                    rozsz.Add(txtRozsz.Text.ToLower().Trim());
            }
            catch { }
            txtRozszerzenia.Text = "";
            foreach (string s in rozsz)
            {
                txtRozszerzenia.Text += s + " ";
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                KategoriaDynamiczna kat = new KategoriaDynamiczna()
                {
                    Nazwa = this.txtNazwa.Text,
                    RozmiarOd = PrzeliczNaBajty((int)numericUpDown1.Value, cmbRozOdJed.SelectedItem.ToString()),
                    RozmiarDo = PrzeliczNaBajty((int)numericUpDown3.Value, cmbRozDoJed.SelectedItem.ToString()),
                    Rozszerzenia = this.rozsz
                };
                Globalne.KategorieDyn.Add(kat);
            }
            catch { MessageBox.Show("Nie udało się utworzyć kategorii"); }

            this.Close();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }

        #endregion Methods
    }
}
